<template>
  <view class="container">
    <button @click="chooseImage">选择图片</button>
    <button @click="saveAllImages">保存所有图片到本地</button>
    
    <view v-for="(image, index) in imageList" :key="index" class="image-item">
      <image :src="image.tempPath" mode="aspectFit" class="preview-image"></image>
      <text>{{ image.savedPath || '未保存' }}</text>
      <button @click="saveSingleImage(image, index)">保存到本地</button>
    </view>
  </view>
</template>
<script>
export default {
  data() {
    return {
      imageList: [] // 存储图片信息 {tempPath: '', savedPath: ''}
    }
  },
  methods: {
    // 选择图片
    chooseImage() {
      uni.chooseImage({
        count: 9, // 最多可选9张
        sourceType: ['album', 'camera'], // 可以从相册或相机选择
        success: (res) => {
          // 将选择的图片添加到列表
          res.tempFilePaths.forEach(tempPath => {
            this.imageList.push({
              tempPath: tempPath,
              savedPath: ''
            })
          })
        },
        fail: (err) => {
          uni.showToast({
            title: '选择图片失败',
            icon: 'none'
          })
          console.error('选择图片失败:', err)
        }
      })
    },
    
    // 保存单张图片到本地
    saveSingleImage(image, index) {
		console.log(image);
      if (!image.tempPath) return
      
      // 安卓存储路径
      const fileName = `image_${Date.now()}.jpg`
      const savePath = plus.io.convertLocalFileSystemURL(`_doc/${fileName}`)
      console.log(savePath);
      // 保存文件
      plus.io.resolveLocalFileSystemURL(image.tempPath, (entry) => {
        entry.file((file) => {
          const fileReader = new plus.io.FileReader()
          fileReader.readAsDataURL(file)
          fileReader.onloadend = (evt) => {
            const base64Data = evt.target.result.split(',')[1]
			let aaa = `data:image/jpeg;base64,${base64Data}`
			console.log('base64Data',base64Data,evt.target.result);
			uni.setStorageSync('imgData',[{path:aaa}])
            plus.io.writeFile({
              path: savePath,
              data: base64Data,
              encoding: 'base64',
              success: () => {
                // 更新图片保存路径
                this.$set(this.imageList, index, {
                  ...image,
                  savedPath: savePath
                })
				uni.setStorageSync('imgData',this.imageList)
                uni.showToast({
                  title: '保存成功',
                  icon: 'success'
                })
              },
              fail: (err) => {
                uni.showToast({
                  title: '保存失败',
                  icon: 'none'
                })
                console.error('保存失败:', err)
              }
            })
          }
        })
      })
    },
    
    // 批量保存所有图片
    saveAllImages() {
      this.imageList.forEach((image, index) => {
        if (image.tempPath && !image.savedPath) {
          this.saveSingleImage(image, index)
        }
      })
    }
  }
}
</script>


<style>

</style>